/*
 * Classe SQL
 */
function classSql(requeteSql){
	
	this.dbName = "reserveIT.sqlite";
	this.db = null;
	this.requeteSql = requeteSql;
	
	this.loadDB = function(){
		//Choisir la config en fonction d'où est située la base
		//Commentez les 2 lignes de l'une ou l'autre
		//Ici la config 1 est choisie
		
		//Config 1 : la base est dans le profil Sunbird
		var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
		file.append(this.dbName);
	    
		//Config 2 : la base est dans un autre répertoire locale ou montage distant
		//var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		//file.initWithPath('/Users/mathieupavard/Dropbox/reserveit/reserveIT.sqlite');

		
		var storage = Components.classes["@mozilla.org/storage/service;1"].getService(Components.interfaces.mozIStorageService);
	    var db = storage.openDatabase(file);
	    this.db = db;
	}
	
	this.getDB = function(){
		return this.db;
	}
	
	this.searchSql = function(db){
		var statement = Components.classes['@mozilla.org/storage/statement-wrapper;1'].createInstance(Components.interfaces.mozIStorageStatementWrapper);
		statement.initialize(this.db.createStatement(this.requeteSql));
		return statement;
	}

	this.insertSql = function(db){
		var statement = Components.classes['@mozilla.org/storage/statement-wrapper;1'].createInstance(Components.interfaces.mozIStorageStatementWrapper);
		//statement.initialize(this.db.createStatement(requeteSql));
		//statement.step();
		return statement;
	}
	
	this.deleteSql = function(db){
		var statement = Components.classes['@mozilla.org/storage/statement-wrapper;1'].createInstance(Components.interfaces.mozIStorageStatementWrapper);
		statement.initialize(this.db.createStatement(requeteSql));
		statement.step();
		alert("Information supprimée correctement !");
	}
}


/*
 * Fonction d'exécution de SELECT
 * La requète est passée en paramètre de la fonction javascript dans le XUL
 */
function executeReqSql(requeteSql){
	//Autorisations
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
	//On instancie l'objet
	var sqlObj = new classSql(requeteSql);
	var statement = sqlObj.searchSql(sqlObj.loadDB());
	
	return statement;
}
 
/*
 * Fonction d'exécution d'INSERT
 * La requète est passée en paramètre de la fonction javascript dans le XUL
 */ 
function insertReqSql(requeteSql){
	//Autorisations
	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		
	//On instancie l'objet
	var sqlObj = new classSql(requeteSql);
	var statement = sqlObj.insertSql(sqlObj.loadDB());
	var db = sqlObj.getDB();
	
	var sqlArray = new Array(db,statement);
	
	return sqlArray;
}
